home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1984-04-24 | 2.1 KB | 44 lines |
- 1 REM BREAKOUT game in TRNSFORM format
- 2 REM SEE MEMO TRNSFORM FOR UPLOAD/DOWNLOAD STUART BELL (301) 588-2491
- 10 DELAY=200 'establish initial delay
- 20 KEY OFF
- 30 CLS: S = 0 'set up score
- 40 OPTION BASE 1:DIM L(80,2)
- 50 FOR J=1 TO 2:FOR I = 1 TO 80:L(I,J)=1:NEXT I:NEXT J
- 60 BAR$=STRING$(80,219):LOCATE 3,1,1:PRINT BAR$;:LOCATE 4,1,1:PRINT BAR$
- 70 ON KEY(11) GOSUB 380:KEY(11) ON 'make the ball faster
- 80 ON KEY(12) GOSUB 390:KEY(12) ON 'cursor left button pushed
- 90 ON KEY(13) GOSUB 400:KEY(13) ON 'cursor right button pushed
- 100 ON KEY(14) GOSUB 410:KEY(14) ON 'make the ball slower
- 110 XPAD = 39:YPAD = 25 ' establish default paddle positions
- 120 CURSOR$="^[[[]"
- 130 LOCATE YPAD,XPAD,0:PRINT CURSOR$;
- 140 BY=10:BX=1:DY=1:DX=1
- 150 KEY (12) STOP:KEY (13) STOP 'suspend key tracking for a while
- 160 LOCATE BY,BX:PRINT " ";:BX = BX + DX:BY=BY + DY:IF BY = 1 THEN DY = -DY: SOUND 97,3:GOTO 250
- 170 IF BY<>24 THEN GOTO 250
- 180 SOUND 37,3:DY = -DY 'make the ball bounce up
- 190 IF BX=XPAD + 0 THEN DX=-3:GOTO 250 'accelerate the ball left by 3
- 200 IF BX=XPAD + 1 THEN DX=DX-1:GOTO 250 'accelerate the ball left by 1
- 210 IF BX=XPAD + 2 THEN GOTO 250 ' just bounce the ball
- 220 IF BX=XPAD + 3 THEN DX=DX+1:GOTO 250 ' accelerate right 1
- 230 IF BX=XPAD + 4 THEN DX=DX+3:GOTO 250 ' accelerate right 3
- 240 KEY(11) OFF:KEY(12) OFF:KEY(13) OFF:KEY(14) OFF:BEEP:LOCATE 5,1,1:END
- 250 IF BX>=80 THEN DX=-DX:BX=80:SOUND 37,3 'right wall - bounce back
- 260 IF BX<=1 THEN DX=-DX:BX=1:SOUND 37,3 ' we hit the left wall - bounce back
- 270 LOCATE BY,BX: PRINT CHR$(2);
- 280 IF BY <> 3 AND BY <> 4 THEN GOTO 350 ' process space in the bars
- 290 I=BX:J=BY-2:IF L(I,J) = 1 THEN S=S+1:L(I,J) = 0:SOUND 185,3 : IF J = 1 THEN IF DY < 0 GOTO 300 ELSE GOTO 310 ELSE IF DY < 0 GOTO 320 ELSE GOTO 330 ELSE GOTO 350
- 300 DX = - DX : GOTO 340 'top line going up
- 310 GOTO 340 ' top line going down
- 320 GOTO 340 ' bottom line going up
- 330 DX = - DX ' bottom line going down
- 340 DY = - DY:LOCATE 1,70,0:PRINT "score=";S
- 350 KEY(12) ON:KEY(13) ON
- 360 FOR I=1 TO DELAY :NEXT I:GOTO 150
- 370 ' function key handlers
- 380 DELAY=ABS(DELAY-1):RETURN ' speed up the ball and the rate of speed
- 390 LOCATE YPAD,XPAD:PRINT " ";:XPAD=(XPAD+71)MOD 73 + 1:LOCATE YPAD,XPAD:PRINT CURSOR$;:RETURN
- 400 LOCATE YPAD,XPAD:PRINT " ";:XPAD=(XPAD+1)MOD 74 + 1:LOCATE YPAD,XPAD:PRINT CURSOR$;:RETURN
- 410 DELAY=DELAY+1:RETURN 'slow down the ball
-